/**
 * Project :  leboncoinauto
 * Author :   combeol
 * URL :      http://eryos.fr/
 *
 * Copyright (C) 2013 - combeol 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 */
package com.eryos.selenium;

import org.junit.Assert;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;

/**
 * 
 * @author $Author: $
 * @version $Revision: $
 */
public abstract class JQuerySeleniumTestCase extends SeleniumTestCase {

	public WebElement getElementByJQuery(String jquery) {
		getLogger().debug("getElementByJQuery <{}>", jquery);

		JavascriptExecutor js = (JavascriptExecutor) getDriver();
		String find = "return jq(\"" + jquery + "\").get(0);";
		WebElement element = (WebElement) js.executeScript(find);
		highlightElement(element);
		return element;
	}

	public void assertElementPresentWithJquery(String jquery) {
		getLogger().debug("assertElementPresentWithJquery <{}>", jquery);

		JavascriptExecutor js = (JavascriptExecutor) getDriver();
		String find = "return jq(\"" + jquery + "\").get(0);";
		WebElement element = (WebElement) js.executeScript(find);
		highlightElement(element);
		Assert.assertNotNull(element);
	}

	public void assertElementNotPresentWithJquery(String jquery) {
		getLogger().debug("assertElementNotPresentWithJquery <{}>", jquery);

		JavascriptExecutor js = (JavascriptExecutor) getDriver();
		String find = "return jq(\"" + jquery + "\").get(0);";
		WebElement element = (WebElement) js.executeScript(find);

		Assert.assertNull(element);
	}

}
